Image capture and manipulation

ABSTRACT

Systems and techniques to provide image capture and manipulation. In general, in one implementation, the technique includes receiving an input stream including image data from a source, displaying the input stream in real-time including displaying a plurality of instantiations of the stream at a same time, each stream different, the step of displaying including applying a filter to each instantiation of the input stream, and receiving a prompt to select one of the instantiations of the stream.

CROSS REFERENCE TO RELATED CASES

This application is a continuation of U.S. patent application Ser. No.11/248,630, entitled “IMAGE CAPTURE AND MANIPULATION”, filed Oct. 11,2005 (Attorney Docket No. 18962-0024001), which is also related to thefollowing co-pending patent applications, which are hereby incorporatedby reference in their entirety:

U.S. patent application Ser. No. 11/249,130, entitled “IMPROVED IMAGECAPTURE”, filed Oct. 11, 2005 (Attorney Docket No.18962-025001/P4011US1).

U.S. patent application Ser. No. 10/424,253, entitled “METHOD ANDAPPARATUS FOR MANIPULATING AN IMAGE TO FORM AN ICON”, filed Apr. 28,2003.

U.S. patent application Ser. No. 10/742,957, entitled “CREATING A THEMEUSED BY AN AUTHORING APPLICATION TO PRODUCE A MULTIMEDIA PRESENTATION”,filed Dec. 22, 2003.

U.S. patent application Ser. No. 10/337,924, entitled “METHOD ANDAPPARATUS FOR CREATING MULTIMEDIA PRESENTATIONS”, filed Jan. 6, 2003.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by any-one of the patentdocument or the patent disclosure, as it appears in the Patent andTrademark Office patent file or records, but otherwise reserves allcopyright rights whatsoever.

TECHNICAL FIELD

This specification describes systems and methods for image capture andmanipulation.

BACKGROUND

Systems and methods for providing image capture and manipulation aredescribed. Many software applications now accept image data such as headshots to identify, for example, the sender of an electronic mailmessage, an Internet chat buddy, or to identify a caller on avoice-over-IP communication link. Novice computer users may not know howto associate their picture with these applications. Furthermore, a usermay wish to modify their picture before using it. While many softwarepackages provide very sophisticated tools for image editing, noviceusers can find these packages too cumbersome, especially if the userwants to quickly experiment with different effects.

SUMMARY

This specification describes systems and methods for image capture andmanipulation.

In one aspect, an input stream including image data is received from asource. The input stream is displayed in real-time including displayinga plurality of instantiations of the stream at a same time, each streamdifferent, the step of displaying including determining a filter toapply to each instantiation of the input stream and applying the filterto a respective instantiation. A prompt is received to select one of theinstantiations of the stream. One frame is selected from the selectedstream to display as a still image including applying the selectedfilter to the still image prior to display.

Implementations may include one or more of the following features.Receiving can be from a camera attached to a computer or from a phone.There can be nine instantiations of the input stream. A filter can beapplied to the image data. User selection of a filter to apply to eachstream can be received. Two mosaics can be selectively displayed, eachwith a predetermined number of instantiations of the stream.

In another aspect, input data is received from an image source. Pluralvariations of the input data are displayed at a same time, eachvariation a filtered version of the input data. A prompt is received toselect one of the plural variations. The image source is prompted toproduce new input data. A still image is displayed including applying afilter to the new input data, the filter being associated with theselected variation.

Implementations may include one or more of the following features.Applying can utilize an effect. An effect can include one or more of thefollowing: cropping, flipping, adding a border, adding a backdrop,scaling, color manipulation, blurring, sharpening, distorting,transforming geometry, or pattern generation. A filter can be aprogrammatic representation of an effect. Displaying the pluralvariations can include determining a unique cell to display eachvariation of the input data in. A flash can be provided through adisplay device attached to a computer. Capturing the new input data canbe in coincidence with the flash.

In another aspect, plural variations of an image stream aresimultaneously displayed, each having an associated effect, includingapplying a given effect to the image stream to produce a givenvariation. Input is received to capture the image stream. Input isreceived to select a variation to be captured. The captured selection isdisplayed.

Implementations may include one or more of the following features. Theimage stream can be a time-ordered sequence of images originating from adigital camera. The captured selection can be flipped. The capturedselection can be displayed as collection of captured selections. Userselection of an effect to apply to each variation can be received. Thecaptured selection can be provided to one of: an electronic mailmessage, an address book application, an account profile, an interactivechat profile, or an image organizer application.

In another aspect, input is received to select of an image in a firstuser interface having a collection of images, the image transformed by afirst effect. Displaying simultaneously in a second user interfaceplural variations of the selected image without the transformation ofthe first effect, each variation having an associated second effect,including applying a given second effect to the selected image toproduce a given variation. Receiving input to select a variation.Transforming the selected image by the second effect associated with theselected variation.

Implementations may include one or more of the following features. Thefirst user interface and the second user interface can be displayedsimultaneously but may not overlap.

In another aspect, a first image data is selected from live image data,the live image data originating from a digital camera. A first imageeffect is selected from a plurality of image effects, each image effectin the plurality being associated with a unique display region. Thefirst image effect is applied to the first image data, or to a copy ofthe first image data, to create a first image, the first image displayedon a first display region associated with the first image effect.Selection of the first display region is detected. Second image data isselected from the live image data, the second image data occurring at apoint in time later than the first image data. The first image effect isapplied to the second image data, or to a copy of the second image data,to create a second image, the second image displayed on a secondunassociated display region.

Implementations may include one or more of the following features. Thepoint in time can be an offset from when the input is detected. Thedigital camera can be a phone, a portable music player, or a portableelectronic game playing device. The live image data can be a continuoustime-ordered sequence of packets or frames containing image data. Theselection of the first display region includes detecting input incidenton the first display region.

Implementations of the invention can realize one or more of thefollowing advantages. A user can easily obtain and apply effects to animage for use in various applications. Different effects (e.g., usingone or more filters) can simultaneously be applied to an image (or imagestream) with the results being displayed side-by-side. This allows auser to immediately compare different effects and choose the mostdesirable one. Image data can easily be transferred to otherapplications such as email, an address book, contacts, Internet chat,and image organization applications. In one embodiment, the underlyingimage data is not changed. An image strip of the pictures, preferablyrecent pictures, is provided. One button is provided for image captureand selection. And a count-down timer can be provided before an image iscaptured.

These general and specific aspects may be implemented using a system, amethod, or a computer program, or any combination of systems, methods,and computer programs. The details of one or more implementations of theinvention are set forth in the accompanying drawings and the descriptionbelow. Other features, aspects, and advantages of the invention will beapparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 shows a graphical user interface for viewing a still or a liveimage.

FIG. 2 shows a graphical user interface for displaying and selecting afirst set of image effects.

FIG. 3 shows a graphical user interface for displaying and selecting asecond set of image effects.

FIG. 4 shows a graphical user interface for capturing an image.

FIG. 5 shows a graphical user interface for transferring a capturedimage to an application.

FIG. 6 shows a system for applying effects to image instantiations andstill images.

FIG. 7 is a flow chart describing effect selection and imageacquisition.

FIG. 8 is a flow chart describing associating an effect with apreviously captured image.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIG. 1 shows a graphical user interface (GUI) for viewing a still orlive image.

Although a GUI is illustrated, other user interfaces can be used insystems and methods for providing image capture and manipulation,including user interfaces that allow for user interaction by means ofsound, voice, gesture, eye movement and/or use of remote controldevices. A still or live image is displayed in region 102 of window 100.For example, the image may be obtained from an image capture device(e.g., a digital still camera or a digital video camera) integrated withor mounted in or located in proximity to a user's computer display. Acamera button 106 allows the user to switch between a still image and alive image. A live image reflects a continuous stream of images capturedby the image capture device. The camera button 106 can also be used toallow the user to capture an image (see below).

Image strip 104 presents optionally scaled versions of previouslycaptured images. In this illustration, there are no images captured andso the image strip 104 displays blank images (110, 116). Alternatively,the image strip 104 is empty if there are no captured images.Alternatively, the image strip is not presented. The image strip 104 canhold more images than can be displayed. A user can scroll to the left orto the right through images using scroll buttons (112 and 114). Theimages in the image strip can be sorted in order of the date and/or timethat they were captured, the date and/or time they were last modified,or other suitable criteria. In one embodiment, the image strip 104 canshow more than one row and can scroll vertically. For example, the imagestrip 104 might show six images across the first row and the next siximages in the second row, etc. In another embodiment, the image strip104 can be located at other locations and in other orientations, e.g.vertical along the left side of the window 100.

An effects button 108 presents a filter mosaic (or “mosaic”) in region102 (see FIGS. 2 and 3). The mosaic includes a plurality of cells (e.g.,200, 202, 204, 206, 208, 210, 212, 214, and 216). Associated with eachcell is an effect. One effect can be a nullity effect, which results inthe un-edited presentation of the source image in the respective cell.Combinations of effects can be defined and associated with a cell. Thesource image, whether live or still, is presented in each cell of themosaic.

FIG. 2 shows a GUI for displaying and selecting a first set of imageeffects.

A mosaic is displayed in region 102 of window 100. Region 102 issubdivided into cells in which copies or instantiations of a still orlive image are simultaneously rendered, each with an applied effect. Aneffect is a transformation or distortion of a still or live image. Aneffect can include, without limitation, one or more of the following:cropping, providing a mirror image (“flipping”), adding a bordersurrounding the image, adding a backdrop, scaling, color manipulation,blurring, sharpening, distorting, transforming geometry, and patterngeneration. By way of illustration, instantiation cell 200 shows a“Sepia” effect applied to an image instantiation. Center cell 208 showsthe still or live image without applying an effect or by applying a nulleffect. Other effects are possible as illustrated in instantiation cells202, 204, 206, 208, 210, 212, 214, and 216 of FIG. 2, and cells 300,302, 304, 306, 308, 310, 312, 314, and 316 of FIG. 3. The ability to seesimultaneously how different effects alter an image allows a user toquickly compare the effects and select a desired effect.

When conventional handheld digital cameras (still or video) capturepictures, the pictures as captured are not flipped. An effect that flipsan image is useful if any text will be visible in the image sincephotographed text appears backwards or if the user is taking a selfportrait. A user can optionally specify that the “flip” effect always beapplied before or after any other effects are applied. In oneembodiment, the “live preview” mode (see below) presents a live, flippedimage. In this way, the live preview provides the user with intuitivereal-time feedback, as if they were looking into a mirror. In oneembodiment, the “flip” effect is applied to captured images or imageinstances by default, whether or not other effects are applied.

In one implementation, an effect can be applied to an instantiationusing the Core Image application programming interface (API) which ispart of the Quartz Core framework image processing technology availablefrom Apple Computer, Inc. of Cupertino, Calif. The Core Image APIprovides access to built-in image filters for both video and stillimages and provides support for creating custom filters.

Additional effects beyond those displayed in region 102 are available byselecting different mosaics, where the different mosaics have differentsets of effects associated with the cells. In one implementation,selection of the effects button 108 can allow a user to view differentmosaics (e.g., FIG. 2 and FIG. 3). In another implementation, repeatedlyselecting the effects button 108 will allow the user to cycle throughdifferent mosaics.

Although there are nine instantiation cells in this figure, more orfewer are possible. In one implementation, the number of cells displayedis user configurable. The cells can also be made larger if there arefewer cells, or smaller to accommodate a greater number of cells.Different size cells are possible at a same time. Associated imageinstantiations can be scaled to accommodate a given cell size. Inanother implementation, a mosaic can be presented in a scrollable area.For example, more than nine cells could be shown and a scroll bar couldbe provided. In yet another implementation, cells can be reordered bydragging and dropping the cells.

In one embodiment, a user can define for a given cell what effect orseries of effects to apply. In another embodiment, a user can drag anddrop cells onto each other to create cells with multiple effects. Forexample, if a first cell having a first effect is dropped on a secondcell having a second effect, the second cell will have the first effectand the second effect, and both effects will be applied to the imageinstance in the cell. Alternatively, a new cell is created having theeffects of both cells. Thus, cells can have an unlimited number ofeffects.

The user can select a cell (200, 202, 204, 206, 208, 210, 212, 214, and216) to indicate selection of a desired effect. Then, by selecting thecamera button 106, the user can capture a still image and have theselected effect applied to it. Alternatively, the user can select apreviously captured image 218 in the image strip 104 to apply theselected effect to. By doing so, the selected effect is applied to image218. The user can later change the effect applied to the image 218 byselecting a different cell.

FIG. 4 shows a GUI for capturing an image. Selection of the camerabutton 106 in FIG. 2 or FIG. 3 switches the display region 102 to show asingle, live preview image (“preview mode”) without an effect applied asshown here. In another implementation, the live preview image can beshown with the selected effect applied to it. A count-down timer orother suitable user notification can accompany the live image to let theuser know that an image is about to be captured. In this illustration, a3-2-1 count-down timer 400 is shown. As each second (or other timeperiod) passes, a different numeral (e.g., 3, 2, or 1) is highlighted. Asound can also accompany the count-down timer. When the count downcompletes, the image is captured. In one implementation, the user'sdisplay device can “flash” when the image is obtained. Flashing thedisplay device involves adjusting the display device brightness andcolor to provide illumination of the image target. This also serves asnotice to the user that an image is being captured. For example, thedisplay can be made to briefly display all white. Additionally, a soundcan accompany the flash. Once the image is obtained, the selected effect(if any) is applied to it. See U.S. patent application Ser. No.11/249,130, entitled IMPROVED IMAGE CAPTURE, filed Oct. 11, 2005(Attorney Docket No. 18962-025001/P4011US1), which is incorporatedherein by reference.

FIG. 5 shows a graphical user interface for transferring a capturedimage to an application. As mentioned earlier, captured images canappear in image strip 104.

In this illustration, newly captured image 508 is displayed along withthe earlier captured image 218. A user can transfer any image in theimage strip 104 to another application by selecting the image (e.g.,image 508) and either selecting an application icon (500, 502, 504, 506)or dragging and dropping the image onto an application icon or ontoanother application outside of window 100. For example, selection of theapplication icon 500 will cause the image to be added to an electronicmail message. Selection of icons 502, 504 and 506 add the image to anemail message, an account picture and an Internet chat user profile,respectively. The potential number of applications that a captured imagecan be transferred to is not limited to the four applications discussedhere. Any application that can accept image data is suitable (e.g.,iPhoto and iChat, available from Apple Computer, Inc.).

In one implementation, an image can be transferred to a targetapplication by saving the image to a file and sending the targetapplication a notification (e.g., a drag and drop GUI event) that refersto the image file. In another implementation, an image can be saved infile at a location where a target application expects to find it and,optionally, with a file name that the target application will recognize.

FIG. 6 shows a system 600 for applying effects to image instantiationsand still images.

System 600 includes an image obtainer component 606 which receives inputdata (singularly or as a stream) containing compressed or uncompressedimage data from an image source such as a digital image capture device602 or persistent storage 604. The image capture device 602 (e.g.,digital camera) can be capable of capturing still or live images, can bewired or wireless, and can be integrated into a computer, game system,portable game system, portable media player, cellular telephone,portable music player (e.g., an iPod from Apple Computer, Inc.), orother suitable device. In one implementation, the image capture device602 is an Apple iSight Video Camera, available from Apple Computer, Inc.The iSight camera can be mounted on or located in proximity to acomputer user's display device so that the user is in front of thecamera, preferably centered.

The image obtainer 606 can prompt the camera to capture an image at thebehest of a user or a process. If the image capture device 602 is onlycapable of capturing live images (e.g., where the input data is acontinuous time-ordered sequence of video packets or frames containingimage data), the image obtainer 606 can determine which frame in thesequence corresponds to the time when the user or the process requestedthat an image be captured. For example, this could be the frame thatcoincides in time with the display device “flash”. The image obtainer606 can optionally receive information from the camera in addition tothe input data such as a light measurement and provide this informationto other components.

The image obtainer 606 can provide input data (singularly or as astream) I₀ to user interface 512, such as in the case where region 102of window 100 is in preview mode. Input data I₀ can also be provided toduplicator component 608 in which one or more copies of I₀ (i.e., I₁,I₂, I₃, I₄ and I₅) are each individually provided to a correspondingfilter (i.e., F₁, F₂, F₃, F₄, and F₅). Each filter operates on itsrespective input data by applying an effect to the input data to createmodified input data (i.e., I′₁, I′₂, I′₃, I′₄, I′₅). A filter can alsoapply a null effect, that is, the effect will not modify the input data.For example, the output of a null effect is seen in cell 208 in FIG. 2.In this case, the modified input data is identical to the input data.

Each modified input data (I′₁, I′₂, I′₃, I′₄, I′₅) can be provided to amosaic composer component 610. The mosaic composer 610 prepares themodified input data for display in the user interface 612 (e.g., region102 of window 100). This can entail extracting image data containing animage from each modified input data, scaling each extracted image to fitin a cell, and updating each cell (200, 202, 204, 206, 208, 210, 212,214 and 216) with its associated extracted image. Alternatively, thecomposer 610 can arrange each extracted image into a single mosaic whichis used to update region 102 wholesale.

The user interface 612 is rendered on a display device 616 which canoptionally serve as a photographic “flash” as described above. A promptcomponent 614 detects when a user has selected an effect. The promptcomponent 614 also detects when a user has requested (e.g., by selectingthe camera button 106) that an image be captured and communicates thisto the user interface 612. The user interface 612 can notify the imageobtainer 606 so that the image can be captured (e.g., after a count-downtimer has completed). The user interface can also notify a flashcomponent 618 of the requested image capture so that the flash component618 can “flash” the display device at a time coinciding with the imagecapture.

FIG. 7 is a flow chart 700 of effect selection and image acquisition.

Input data containing image data is received singularly or as a stream(step 702). Instances of the input data are created (step 704). A filteris applied to each instance (step 706). Each instance is displayed usingits associated filter (step 707) in a mosaic. A prompt is receivedindicating selection of an instance (step 708). A further prompt isreceived indicating that an image will be captured (step 712). The imageis captured (step 712). The filter associated with the selected instanceis applied to the captured image (step 714). The captured image isdisplayed with the applied filter (step 716).

FIG. 8 is a flow chart 800 of a process for associating an effect with apreviously captured image.

A previously captured image having an associated filter is selected inthe image strip 104 (step 802). Instances of the image are createdwithout the associated filter (step 804). Filters are applied to eachinstance to create modified instances (step 806). Each modified instanceis displayed in a unique cell in a mosaic (step 808). A prompt isreceived indicating selection of a modified instance (step 810). Thefilter that was applied to the selected modified instance is applied tothe image (step 812).

The invention and all of the functional operations described in thisspecification can be implemented in digital electronic circuitry, or incomputer hardware, firmware, software, or in combinations of them.Apparatus of the invention can be implemented in a computer programproduct tangibly embodied in a machine-readable storage device forexecution by a programmable processor; and method steps of the inventioncan be performed by a programmable processor executing a program ofinstructions to perform functions of the invention by operating on inputdata and generating output.

The invention can be implemented advantageously in one or more computerprograms that are executable on a programmable system including at leastone programmable processor coupled to receive data and instructionsfrom, and to transmit data and instructions to, a data storage system,at least one input device, and at least one output device. Each computerprogram can be implemented in a high-level procedural or object-orientedprogramming language, or in assembly or machine language if desired; andin any case, the language can be a compiled or interpreted language.

Suitable processors include, by way of example, both general and specialpurpose microprocessors. Generally, a processor will receiveinstructions and data from a read-only memory and/or a random accessmemory. A computer can be any electronic computing device, such as forexample and without limitation, a handheld or other portable device,cell phone, consumer electronic device, embedded device, or othersuitable device. Generally, a computer will include one or more massstorage devices for storing data files; such devices include magneticdisks, such as internal hard disks and removable disks; amagneto-optical disks; and optical disks. Storage devices suitable fortangibly embodying computer program instructions and data include allforms of non-volatile memory, including by way of example semiconductormemory devices, such as EPROM, EEPROM, and flash memory devices;magnetic disks such as internal hard disks and removable disks;magneto-optical disks; and CD-ROM disks. Any of the foregoing can besupplemented by, or incorporated in, ASICs (application-specificintegrated circuits).

To provide for interaction with a user, the invention can be implementedon a computer system having a display device such as a monitor or LCDscreen for displaying information to the user and a keyboard and apointing device such as a mouse or a trackball by which the user canprovide input to the computer system. The computer system can beprogrammed to provide a graphical user interface through which computerprograms interact with users.

A number of embodiment of the invention have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention.Accordingly, other embodiments are within the scope of the followingclaims.

1. A computer implemented method, comprising: providing for display afirst image as a mosaic having a plurality of cells, each celldisplaying the first image in a distinct visual effect; providing fordisplay a second image outside of the mosaic; receiving a selection of afirst cell among the cells of the mosaic, the first cell having a firstvisual effect; and applying the first visual effect to the second imagein response, wherein: the first image is a first frame of a video, andthe second image is a second frame of the video, the second framepreceding the first frame in time.
 2. The method of claim 1, wherein thesecond image is displayed in an image strip including one or moreimages, each of the one or more images being a pre-captured frame of thevideo.
 3. The method of claim 1, wherein the cells include a prominentcell and one or more peripheral cells, the first image being displayedin the prominent cell having a null visual effect.
 4. The method ofclaim 3, wherein the prominent cell is a cell located at a center of themosaic.
 5. The method of claim 3, comprising: receiving an input tochange the visual effects of the cells in the mosaic; and in response,changing the visual effect of each of the peripheral cells whilemaintaining the null visual effect of the prominent cell.
 6. The methodof claim 3, comprising: receiving a selection of a second cell among thecells of the mosaic, the second cell having a second visual effect; andapplying the second visual effect to the second image in response,wherein: one of the first cell or the second cell is the prominent cell,and one of the first cell or the second cell is a peripheral cell. 7.The method of claim 6, wherein: receiving the selection of the secondcell comprises receiving an input dragging the second cell and droppingthe second cell on the first cell; and applying the second visual effectto the second image comprises applying a combination of the first visualeffect and the second visual effect to the second image.
 8. The methodof claim 1, wherein: the mosaic is displayed on a display device of acomputer, and the video is a live video feed from a camera device of thecomputer.
 9. A non-transitory storage device storing computerinstructions operable to cause one or more processors to performoperations comprising: providing for display a first image as a mosaichaving a plurality of cells, each cell displaying the first image in adistinct visual effect; providing for display a second image outside ofthe mosaic; receiving a selection of a first cell among the cells of themosaic, the first cell having a first visual effect; and applying thefirst visual effect to the second image in response, wherein: the firstimage is a first frame of a video, and the second image is a secondframe of the video, the second frame preceding the first frame in time.10. The device of claim 9, wherein the second image is displayed in animage strip including one or more images, each of the one or more imagesbeing a pre-captured frame of the video.
 11. The device of claim 9,wherein the cells include a prominent cell and one or more peripheralcells, the first image being displayed in the prominent cell having anull visual effect.
 12. The device of claim 11, wherein the prominentcell is a cell located at a center of the mosaic.
 13. The device ofclaim 11, the operations comprising: receiving an input to change thevisual effects of the cells in the mosaic; and in response, changing thevisual effect of each of the peripheral cells while maintaining the nullvisual effect of the prominent cell.
 14. A system comprising: one ormore processors configured to perform operations comprising: providingfor display a first image as a mosaic having a plurality of cells, eachcell displaying the first image in a distinct visual effect; providingfor display a second image outside of the mosaic; receiving a selectionof a first cell among the cells of the mosaic, the first cell having afirst visual effect; and applying the first visual effect to the secondimage in response, wherein: the first image is a first frame of a video,and the second image is a second frame of the video, the second framepreceding the first frame in time.
 15. The system of claim 14, whereinthe second image is displayed in an image strip including one or moreimages, each of the one or more images being a pre-captured frame of thevideo.
 16. The system of claim 14, wherein the cells include a prominentcell and one or more peripheral cells, the first image being displayedin the prominent cell having a null visual effect.
 17. The system ofclaim 16, wherein the prominent cell is a cell located at a center ofthe mosaic.
 18. The system of claim 16, the operations comprising:receiving an input to change the visual effects of the cells in themosaic; and in response, changing the visual effect of each of theperipheral cells while maintaining the null visual effect of theprominent cell.
 19. The system of claim 16, comprising: receiving aselection of a second cell among the cells of the mosaic, the secondcell having a second visual effect; and applying the second visualeffect to the second image in response, wherein: one of the first cellor the second cell is the prominent cell, and one of the first cell orthe second cell is a peripheral cell.
 20. The system of claim 19,wherein: receiving the selection of the second cell comprises receivingan input dragging the second cell and dropping the second cell on thefirst cell; and applying the second visual effect to the second imagecomprises applying a combination of the first visual effect and thesecond visual effect to the second image.